#include <stdio.h>
#include <signal.h>
#include <unistd.h>

/*
    定义信号处理函数 
    typedef void (*sighandler_t)(int);
    sighandler_t signal(int signum, sighandler_t handler);  
    参数：
    signum: 指定信号
    handler: SIG_IGN：忽略该信号
             SIG_DFL：采用默认方式处理信号
             函数指针：自定义信号处理函数
    命令: ./signal
    现象：5秒后handler函数执行，或者按下ctrl+c，handler函数执行
*/

void handler(int arg)
{
    printf("信号处理handler，arg = %d\n", arg);  //arg是信号ID
}

int main(int argc, char *argv[])
{
    signal(SIGALRM, handler);  //SIGALRM闹钟信号处理
    signal(SIGINT, handler);   //SIGINT（ctrl+c）信号处理
    alarm(5);   //5秒后结束自己的进程

    printf("22222\n");
    pause();  //进程睡眠

    return 0;
}

